<?php
namespace Mouta\AmistateBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * Mouta\AmistateBundle\Entity
 * 
 * @ORM\Table(name="denuncia")
 * @ORM\Entity(repositoryClass="Mouta\AmistateBundle\Entity\DenunciaRepository")
 */
class Denuncia
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    protected $id;

    /**
     * @ORM\Column(type="text")
	 * @Assert\NotBlank(message="Complete el mensaje")
     */
    protected $mensaje;
    
    /**
    * @ORM\Column(type="integer", nullable=false)
	* @Assert\NotBlank()
    */
    protected $tipo;
    
    /**
     * @Gedmo\Timestampable(on="create")
     * @ORM\Column(type="datetime")
     */
    private $created;
    
    /**
     * @ORM\ManyToOne(targetEntity="Usuario")
     * @ORM\JoinColumn(name="denunciante", referencedColumnName="id", onDelete="Cascade")
     */
    protected $denunciante;
    
    /**
     * @ORM\ManyToOne(targetEntity="Usuario")
     * @ORM\JoinColumn(name="infractor", referencedColumnName="id", onDelete="Cascade")
     */
    protected $infractor;
    
    /**
    * @ORM\Column(type="integer", nullable=false)
	* @Assert\NotBlank(message="Complete el motivo")
    */
    protected $motivo;
    
    /**
     * @ORM\Column(type="text", nullable=true)
     */
    protected $extra;
	
	public static function getMotivos()
	{
		return array(
			'1'=>'Vocabulario inapropiado',
			'2'=>'Discriminación',
			'3'=>'Ofensa',
			'4'=>'Insulto',
			'5'=>'Fotografias obscenas',
			'6'=>'Otros'
		);
	}
	
	CONST OPTION_TIPO_PERFIL = 1;
	public static function getOpcionesTipo($id = null)
	{
		$values = array(
		self::OPTION_TIPO_PERFIL => 'Perfil'
		);
		if($id)
		{
			return $values[$id];
		}
		
		return $values;
		
	}
	


    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set mensaje
     *
     * @param string $mensaje
     * @return Denuncia
     */
    public function setMensaje($mensaje)
    {
        $this->mensaje = $mensaje;
    
        return $this;
    }

    /**
     * Get mensaje
     *
     * @return string 
     */
    public function getMensaje()
    {
        return $this->mensaje;
    }

    /**
     * Set tipo
     *
     * @param integer $tipo
     * @return Denuncia
     */
    public function setTipo($tipo)
    {
        $this->tipo = $tipo;
    
        return $this;
    }

    /**
     * Get tipo
     *
     * @return integer 
     */
    public function getTipo()
    {
        return $this->tipo;
    }

    /**
     * Set created
     *
     * @param \DateTime $created
     * @return Denuncia
     */
    public function setCreated($created)
    {
        $this->created = $created;
    
        return $this;
    }

    /**
     * Get created
     *
     * @return \DateTime 
     */
    public function getCreated()
    {
        return $this->created;
    }

    /**
     * Set motivo
     *
     * @param integer $motivo
     * @return Denuncia
     */
    public function setMotivo($motivo)
    {
        $this->motivo = $motivo;
    
        return $this;
    }

    /**
     * Get motivo
     *
     * @return integer 
     */
    public function getMotivo()
    {
        return $this->motivo;
    }

    /**
     * Set extra
     *
     * @param string $extra
     * @return Denuncia
     */
    public function setExtra($extra)
    {
        $this->extra = $extra;
    
        return $this;
    }

    /**
     * Get extra
     *
     * @return string 
     */
    public function getExtra()
    {
        return $this->extra;
    }

    /**
     * Set denunciante
     *
     * @param \Mouta\AmistateBundle\Entity\Usuario $denunciante
     * @return Denuncia
     */
    public function setDenunciante(\Mouta\AmistateBundle\Entity\Usuario $denunciante = null)
    {
        $this->denunciante = $denunciante;
    
        return $this;
    }

    /**
     * Get denunciante
     *
     * @return \Mouta\AmistateBundle\Entity\Usuario 
     */
    public function getDenunciante()
    {
        return $this->denunciante;
    }

    /**
     * Set infractor
     *
     * @param \Mouta\AmistateBundle\Entity\Usuario $infractor
     * @return Denuncia
     */
    public function setInfractor(\Mouta\AmistateBundle\Entity\Usuario $infractor = null)
    {
        $this->infractor = $infractor;
    
        return $this;
    }

    /**
     * Get infractor
     *
     * @return \Mouta\AmistateBundle\Entity\Usuario 
     */
    public function getInfractor()
    {
        return $this->infractor;
    }
}
